package com.kavin.feign.router;


import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;

import com.kavin.core.data.DataObject;
import com.kavin.feign.interfaces.OrderFeignClient;
import com.kavin.feign.interfaces.UcenterFeignClient;

/**
 * 路由控制器
 * @author Kavin
 *
 */
@Component
public class RouterBox  {

	@Autowired
	private UcenterFeignClient ucenterFeignClient;

	/**
	 1、@Autowired 是通过 byType 的方式去注入的， 使用该注解，要求接口只能有一个实现类。
	 2、@Resource 可以通过 byName 和 byType的方式注入， 默认先按 byName的方式进行匹配，如果匹配不到，再按 byType的方式进行匹配。
	 3、@Qualifier 注解可以按名称注入， 但是注意是 类名。
	*/

	@Qualifier("OrderFeignClient") //使用Qualifier为了防止Autowried通过类型找到多个Bean。因为OrderFeignClient可能有多个实现类。
	private OrderFeignClient orderFeignClient;

    public  DataObject routeForward(String project,String model,String method,DataObject dataObject){
    	
    	if(StringUtils.equals("ucenter", project)) {
    		return ucenterFeignClient.commonAjax(model, method, dataObject);
    	}else if(StringUtils.equals("order", project)) {
    		return orderFeignClient.commonAjax(model, method, dataObject);
    	}
    	
    	return null;
    }

       
}
